﻿using System.Configuration;
using Nop.Core.Configuration;

namespace Nop.Plugin.Payments.LibraPay
{
	/// <summary>
	///		<para>Parameters and config settings that are used when calling the LibraPay gateway API.</para>
	/// </summary>
	public class LibraPayPaymentSettings : ISettings
	{

		/// <summary>
		///		<para>The LibraPay payment gateway URL for requests when in testing mode (used when UseSandbox = true).</para>
		/// </summary>
		public static readonly string PaymentGatewayURL_Test = "https://merchant.librapay.ro/pay_auth.php";

		/// <summary>
		///		<para>The LibraPay payment gateway URL for requests when in live/production mode (used when UseSandbox = false).</para>
		/// </summary>
		public static readonly string PaymentGatewayURL_Live = "https://secure.librapay.ro/pay_auth.php";

		/// <summary>
		///		<para>Determines if the gateway is called in testing mode.</para>
		///		<para>Use true while performing tests. Set to false after testing is fine and the plugin goes live.</para>
		/// </summary>
		public bool UseSandbox { get; set; }

		/// <summary>
		///		<para>If true, the customer will receive a notification page when placing an order he/she wants to pay by credit card.</para>
		///		<para>The notification will be displayed just before the user is redirected to the payment gateway.</para>
		/// </summary>
		public bool NotifyBeforeRedirect { get; set; }

		/// <summary>
		///		<para>Should have the same value as the config setting given to merchant by LibraPay.</para>
		/// </summary>
		public string MerchantName { get; set; }

		/// <summary>
		///		<para>Should have the same value as the config setting given to merchant by LibraPay.</para>
		/// </summary>
		public string MerchantURL { get; set; }

		/// <summary>
		///		<para>Should have the same value as the config setting given to merchant by LibraPay.</para>
		/// </summary>
		public string MerchantEmail { get; set; }

		/// <summary>
		///		<para>Should have the same value as the config setting given to merchant by LibraPay.</para>
		/// </summary>
		public string EncryptionKey { get; set; }

		/// <summary>
		///		<para>Should have the same value as the config setting given to merchant by LibraPay.</para>
		/// </summary>
		public string TerminalId { get; set; }

		/// <summary>
		///		<para>Should have the same value as the config setting given to merchant by LibraPay.</para>
		/// </summary>
		public decimal AdditionalFee { get; set; }
	}
}
